昨天,我們建立了firebase的專案與firebase functions,今天我們將部屬functions並觸發他。
首先,在functions內建立http onrequest function,並限制當觸發方式為POST才執行firestore寫入。藉此,我們之後搭配其他的sensor或裝置只要利用functions就能寫入資料、搭配gcp scheduler可以定期更新資料或觸發音箱進行推播。
index.js
const functions = require('firebase-functions');
const firebaseAdmin = require('firebase-admin')
firebaseAdmin.initializeApp(functions.config().firebase)
exports.itHelpFunction = functions.https.onRequest( (req, res) => {
if(req.method==="POST"){
var optionsHMS = {
hour: "numeric",
minute: "numeric",
second:"numeric",
hour12: false};
const timeHMS=String(Intl.DateTimeFormat("en-US", optionsHMS).format(new Date()))
const data = {notifyMessage:timeHMS}
firebaseAdmin.firestore().collection("itHelp").doc("googleHome").set(data)
res.send(200, "OK");
}else{
res.send(300, "fail");
}
})
部屬functions
firebase deploy --only functions
記得在 would you like with deletion? 輸入No,以免清除你已部屬的functions
接著,進入GCP平台使用Cloud Scheduler,建立工作。下方頻率是每5分鐘觸發,網址可在firebase的function取得。
因此在5分鐘前後進行node goooleHomeService.js,會推播不同訊息